﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Messaging;
using System.Text;
using System.Threading.Tasks;

namespace NotificacionMQ
{
    public class Servidor
    {
        public static void Main(string[] args)
        {
            // 1. Recepción del alumno vía la cola de entrada (In)
            string rutaColaIn = @".\private$\persuation";
            if (!MessageQueue.Exists(rutaColaIn))
                MessageQueue.Create(rutaColaIn);
            MessageQueue colaIn = new MessageQueue(rutaColaIn);
            colaIn.Formatter = new XmlMessageFormatter(new Type[] { typeof(Notificacion) });

            Message[] mensajes;
            mensajes = colaIn.GetAllMessages();

            foreach (Message mensajeN in mensajes)
            {
                Message mensajeIn = colaIn.Receive();
                Notificacion notificacion = (Notificacion)mensajeIn.Body;

                //Enviar Notificacion
                //1. Instanciar el objeto
                NotificacionWS.NotificacionClient proxyNotificacion = new NotificacionWS.NotificacionClient();

                //2. Invocar al metodo 
                try
                {
                    bool EnvioNotificacion = proxyNotificacion.EnviarCorreo(notificacion.Asunto, notificacion.CorreoDestino, notificacion.MensajeBody);
                }
                catch
                { 
                
                }
                


            }

           
          
            


        }
    }

    public class Notificacion
    {
        public string Asunto { get; set; }
        public string CorreoDestino { get; set; }
        public string MensajeBody { get; set; }
    }
}
